package _13正则表达式_演示;

/*
正则表达式校验字符串：
    判断用户输入的身份证号码是否合法。
    规则为：号码为18位，不能以数字0开头，前17位只可以是数字，最后一位可以是数字或者大写字母X。
    缺点：运行效率低
 */
public class RegexTest2 {

    public static boolean checkId(String id){

        if(id!=null){
            //号码为18位，不能以数字0开头，前17位只可以是数字，最后一位可以是数字或者大写字母X。
            return id.matches("[1-9]\\d{16}[0-9X]");
        }else {
            return false;
        }

    }

    //测试
    public static void main(String[] args) {
        System.out.println( checkId("445221199909091234") );
        System.out.println( checkId("44522119990909123X") );
        System.out.println( checkId("44522119990909123") );
        System.out.println( checkId("4452211999090912345") );
        System.out.println( checkId("045221199909091234") );
        System.out.println( checkId("4452A1199909091234") );
        System.out.println( checkId("44522119990909123x") );
    }
}
